package pl.ydp.storage
{
	import flash.events.IEventDispatcher;
	
	
	
	/**
	 * Interface specify methods by which comunication with the file system will be performed.  
	 * Writing code using IStorage allows applictions to be easily converted  
	 * in order to make them work in a different environment. 
	 */
	public interface IStorage extends IEventDispatcher  
	{	
		/**
		 * Method returns object that represents a phisical resource.
		 * All file operations will be performed via this object. 
		 * List of available file actions is defined by the IResource interface.  
		 * @param pathTo resource path ( usualy file path or directory ) 
		 * @see pl.ydp.storage.IResource 
		 */
		function getResource ( pathTo:String ):IResource;
		
		
		/**
		 * Method should return wrapper (implementation of IPropertyList class)
		 * This object will allow editor ask about free disc space
		 * @param pathTo resource path ( usualy file path or directory ) 
		 * @see pl.ydp.storage.IPropertyList
		 */ 
		function getPropertyList ( pathTo:String ):IPropertyList;
	}
}
